import gradio as gr     # 到处gradio库，设置别名为gr

# 类的实例化
# demo = gr.Blocks()

# 编写注册函数
def register(username, password):
    """
    注册账号的函数
    :param username: 用户名
    :param password: 密码
    :return: 注册的状态
    """
    # TODO 以后再补齐注册函数的功能
    print(f"注册{username}成功")
    return f"注册{username}成功"

# 定义登录函数
def login(username, password):
    """

    :param username:
    :param password:
    :return:
    """
    # TODO 以后再补齐登录函数的功能
    print(f"登录{username}成功")
    return f"登录{username}成功"

with gr.Blocks() as demo:   # 创建Blocks实例
    gr.Markdown("# 这是一个一级标题")
    gr.Markdown("## 二级标题")
    # 行布局
    with gr.Row():
        # 这里写的东西都会放在同一行
        username_text = gr.Textbox(label="请输入账号：")
        password_text = gr.Textbox(label="请输入密码：")
    # 列布局
    with gr.Column():
        # 这里写的东西都会放在同一列
        with gr.Row():  # 嵌套一个行布局
            login_btn = gr.Button("登录")
            register_btn = gr.Button("注册")

        # 输出文本框
        output_text = gr.Textbox(label="输出信息")

    # 绑定事件
    register_btn.click(
        fn=register,    # 绑定的函数名
        inputs=[username_text, password_text],   # 函数参数
        outputs=output_text     # 函数返回值
    )    # 当注册按键被点击时


demo.launch()